Skip to content

feat(oci/spegel): update 0.6.0 ➼ 0.8.0 - #5525

Open
tinfoild[bot] wants to merge 1 commit into
mainfrom
renovate/spegel-0.x
Open

tinfoild[bot] wants to merge 1 commit into
mainfrom
renovate/spegel-0.x

Conversation

@tinfoild

@tinfoild tinfoild Bot commented Apr 19, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
spegel minor 0.6.0 → 0.8.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Configuration

📅 Schedule: (in timezone Asia/Singapore)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Apr 19, 2026 •

Copy link
Copy Markdown

Deploying jjgadgets-biohazard with  Cloudflare Pages  Cloudflare Pages

Latest commit: 0f2c7bc
Status:🚫  Build failed.

View logs

@tinfoild

tinfoild Bot commented Apr 19, 2026 •

Copy link
Copy Markdown
Contributor Author

kube/helmrelease/out00

--- HelmRelease: kube-system/spegel ConfigMap: kube-system/spegel-dashboard

+++ HelmRelease: kube-system/spegel ConfigMap: kube-system/spegel-dashboard

@@ -1,1322 +0,0 @@

----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: spegel-dashboard
-  namespace: kube-system
-  labels:
-    app.kubernetes.io/name: spegel
-    app.kubernetes.io/instance: spegel
-    app.kubernetes.io/managed-by: Helm
-data:
-  spegel.json: |-
-    {
-      "__inputs": [
-        {
-          "name": "datasource",
-          "label": "datasource",
-          "description": "",
-          "type": "datasource",
-          "pluginId": "prometheus",
-          "pluginName": "Prometheus"
-        }
-      ],
-      "__elements": {},
-      "__requires": [
-        {
-          "type": "grafana",
-          "id": "grafana",
-          "name": "Grafana",
-          "version": "11.5.2"
-        },
-        {
-          "type": "datasource",
-          "id": "prometheus",
-          "name": "Prometheus",
-          "version": "1.0.0"
-        },
-        {
-          "type": "panel",
-          "id": "stat",
-          "name": "Stat",
-          "version": ""
-        },
-        {
-          "type": "panel",
-          "id": "table",
-          "name": "Table",
-          "version": ""
-        },
-        {
-          "type": "panel",
-          "id": "text",
-          "name": "Text",
-          "version": ""
-        },
-        {
-          "type": "panel",
-          "id": "timeseries",
-          "name": "Time series",
-          "version": ""
-        }
-      ],
-      "annotations": {
-        "list": [
-          {
-            "builtIn": 1,
-            "datasource": {
-              "type": "grafana",
-              "uid": "-- Grafana --"
-            },
-            "enable": true,
-            "hide": true,
-            "iconColor": "rgba(0, 211, 255, 1)",
-            "name": "Annotations & Alerts",
-            "target": {
-              "limit": 100,
-              "matchAny": false,
-              "tags": [],
-              "type": "dashboard"
-            },
-            "type": "dashboard"
-          }
-        ]
-      },
-      "description": "Spegel is a pull only OCI registry which runs locally on every Node in the Kubernetes cluster. Containerd is configured to use the local registry as a mirror, which would serve the image from within the cluster or from the source registry.",
-      "editable": true,
-      "fiscalYearStartMonth": 0,
-      "graphTooltip": 0,
-      "id": null,
-      "links": [],
-      "panels": [
-        {
-          "collapsed": false,
-          "gridPos": {
-            "h": 1,
-            "w": 24,
-            "x": 0,
-            "y": 0
-          },
-          "id": 24,
-          "panels": [],
-          "type": "row"
-        },
-        {
-          "datasource": {
-            "type": "prometheus",
-            "uid": ""
-          },
-          "description": "",
-          "fieldConfig": {
-            "defaults": {
-              "color": {
-                "mode": "thresholds"
-              },
-              "mappings": [],
-              "thresholds": {
-                "mode": "absolute",
-                "steps": [
-                  {
-                    "color": "transparent",
-                    "value": null
-                  }
-                ]
-              }
-            },
-            "overrides": []
-          },
-          "gridPos": {
-            "h": 4,
-            "w": 3,
-            "x": 0,
-            "y": 1
-          },
-          "id": 11,
-          "options": {
-            "colorMode": "none",
-            "graphMode": "area",
-            "justifyMode": "auto",
-            "orientation": "auto",
-            "percentChangeColorMode": "standard",
-            "reduceOptions": {
-              "calcs": [
-                "lastNotNull"
-              ],
-              "fields": "",
-              "values": false
-            },
-            "showPercentChange": false,
-            "textMode": "auto",
-            "wideLayout": true
-          },
-          "pluginVersion": "11.5.2",
-          "targets": [
-            {
-              "datasource": {
-                "type": "prometheus",
-                "uid": ""
-              },
-              "editorMode": "code",
-              "expr": "count(spegel_advertised_keys{instance=~\"\"})",
-              "hide": false,
-              "legendFormat": "__auto",
-              "range": true,
-              "refId": "A"
-            }
-          ],
-          "title": "Registry",
-          "transparent": true,
-          "type": "stat"
-        },
-        {
-          "datasource": {
-            "type": "prometheus",
-            "uid": ""
-          },
-          "fieldConfig": {
-            "defaults": {
-              "color": {
-                "mode": "thresholds"
-              },
-              "mappings": [],
-              "thresholds": {
-                "mode": "absolute",
-                "steps": [
-                  {
-                    "color": "transparent",
-                    "value": null
-                  }
-                ]
-              }
-            },
-            "overrides": []
-          },
-          "gridPos": {
-            "h": 4,
-            "w": 3,
-            "x": 3,
-            "y": 1
-          },
-          "id": 29,
-          "options": {
-            "colorMode": "none",
-            "graphMode": "area",
-            "justifyMode": "auto",
-            "orientation": "auto",
-            "percentChangeColorMode": "standard",
-            "reduceOptions": {
-              "calcs": [
-                "lastNotNull"
-              ],
-              "fields": "",
-              "values": false
-            },
-            "showPercentChange": false,
-            "textMode": "auto",
-            "wideLayout": true
-          },
-          "pluginVersion": "11.5.2",
-          "targets": [
-            {
-              "datasource": {
-                "type": "prometheus",
-                "uid": ""
-              },
-              "editorMode": "code",
-              "expr": "sum(kubelet_node_name{job=\"kubelet\"})",
-              "legendFormat": "__auto",
-              "range": true,
-              "refId": "A"
-            }
-          ],
-          "title": "Running Nodes",
-          "transparent": true,
-          "type": "stat"
-        },
-        {
-          "datasource": {
-            "type": "prometheus",
-            "uid": ""
-          },
-          "fieldConfig": {
-            "defaults": {
-              "links": [],
-              "mappings": [],
-              "thresholds": {
-                "mode": "absolute",
-                "steps": [
-                  {
-                    "color": "transparent",
-                    "value": null
-                  }
-                ]
-              },
-              "unit": "none"
-            },
-            "overrides": []
-          },
-          "gridPos": {
-            "h": 4,
-            "w": 3,
-            "x": 6,
-            "y": 1
-          },
-          "id": 22,
-          "options": {
-            "colorMode": "none",
-            "graphMode": "area",
-            "justifyMode": "auto",
-            "orientation": "auto",
-            "percentChangeColorMode": "standard",
-            "reduceOptions": {
-              "calcs": [
-                "lastNotNull"
-              ],
-              "fields": "",
-              "values": false
-            },
-            "showPercentChange": false,
-            "textMode": "auto",
-            "wideLayout": true
-          },
-          "pluginVersion": "11.5.2",
-          "targets": [
-            {
-              "datasource": {
-                "type": "prometheus",
-                "uid": ""
-              },
-              "editorMode": "code",
-              "expr": "sum(kubelet_running_containers)",
-              "format": "time_series",
-              "intervalFactor": 2,
-              "legendFormat": "{{instance}}",
-              "range": true,
-              "refId": "A"
-            }
-          ],
-          "title": "Running Containers",
-          "transparent": true,
-          "type": "stat"
-        },
-        {
-          "datasource": {
-            "type": "prometheus",
-            "uid": ""
-          },
-          "fieldConfig": {
-            "defaults": {
-              "color": {
-                "mode": "thresholds"
-              },
-              "mappings": [],
-              "thresholds": {
-                "mode": "absolute",
-                "steps": [
-                  {
-                    "color": "transparent",
-                    "value": null
-                  }
-                ]
-              }
-            },
-            "overrides": []
-          },
-          "gridPos": {
-            "h": 4,
-            "w": 3,
-            "x": 9,
-            "y": 1
-          },
-          "id": 20,
-          "options": {
-            "colorMode": "none",
-            "graphMode": "area",
-            "justifyMode": "auto",
-            "orientation": "auto",
-            "percentChangeColorMode": "standard",
-            "reduceOptions": {
-              "calcs": [
-                "lastNotNull"
-              ],
-              "fields": "",
-              "values": false
-            },
-            "showPercentChange": false,
-            "textMode": "auto",
-            "wideLayout": true
-          },
-          "pluginVersion": "11.5.2",
-          "targets": [
-            {
-              "datasource": {
-                "type": "prometheus",
-                "uid": ""
-              },
-              "editorMode": "code",
-              "expr": "sum(kubelet_running_pods)",
-              "legendFormat": "__auto",
-              "range": true,
-              "refId": "A"
-            }
-          ],
-          "title": "Running Pods",
-          "transparent": true,
-          "type": "stat"
-        },
-        {
-          "datasource": {
-            "type": "prometheus",
-            "uid": ""
-          },
-          "description": "",
-          "fieldConfig": {
-            "defaults": {
-              "color": {
-                "fixedColor": "green",
-                "mode": "fixed"
-              },
-              "mappings": [],
-              "thresholds": {
-                "mode": "absolute",
-                "steps": [
-                  {
-                    "color": "green",
-                    "value": null
-                  },
-                  {
-                    "color": "red",
-                    "value": 80
-                  }
-                ]
-              },
-              "unit": "ms"
-            },
-            "overrides": []
-          },
-          "gridPos": {
-            "h": 4,
-            "w": 3,
-            "x": 12,
-            "y": 1
-          },
-          "id": 12,
-          "options": {
-            "colorMode": "value",
-            "graphMode": "area",
-            "justifyMode": "auto",
-            "orientation": "auto",
-            "percentChangeColorMode": "standard",
-            "reduceOptions": {
-              "calcs": [
-                "lastNotNull"
-              ],
-              "fields": "",
-              "values": false
-            },
-            "showPercentChange": false,
-            "textMode": "auto",
-            "wideLayout": true
-          },
-          "pluginVersion": "11.5.2",
-          "targets": [
-            {
-              "datasource": {
-                "type": "prometheus",
-                "uid": ""
-              },
-              "editorMode": "code",
-              "exemplar": false,
-              "expr": "max(rate(http_request_duration_seconds_bucket{job=\"\"}[]))",
-              "format": "table",
-              "instant": true,
-              "legendFormat": "__auto",
-              "range": false,
-              "refId": "A"
-            }
-          ],
-          "title": "Max Request Duration",
-          "transparent": true,
-          "type": "stat"
-        },
-        {
-          "gridPos": {
-            "h": 4,
-            "w": 3,
-            "x": 21,
-            "y": 1
-          },
-          "id": 2,
-          "options": {
-            "code": {
-              "language": "plaintext",
-              "showLineNumbers": false,
-              "showMiniMap": false
-            },
-            "content": "<br>\n<div style=\"text-align: center;\"><a href=\"https://github.com/XenitAB/spegel\" target=\"_blank\">Spegel at GitHub</a> </div>\n\n",
-            "mode": "html"
-          },
-          "pluginVersion": "11.5.2",
-          "title": "Github link",
-          "transparent": true,
-          "type": "text"
-        },
-        {
-          "collapsed": false,
-          "gridPos": {
-            "h": 1,
-            "w": 24,
-            "x": 0,
-            "y": 5
-          },
-          "id": 9,
-          "panels": [],
-          "repeat": "datasource",
-          "type": "row"
-        },
-        {
-          "datasource": {
-            "type": "prometheus",
-            "uid": ""
-          },
-          "fieldConfig": {
-            "defaults": {
-              "color": {
-                "mode": "thresholds"
-              },
-              "custom": {
-                "align": "center",
-                "cellOptions": {
-                  "type": "auto"
-                },
-                "inspect": false
-              },
-              "mappings": [],
-              "thresholds": {
-                "mode": "absolute",
-                "steps": [
-                  {
-                    "color": "green",
-                    "value": null
-                  },
-                  {
-                    "color": "red",
-                    "value": 80
-                  }
-                ]
-              }
-            },
-            "overrides": [
-              {
-                "matcher": {
-                  "id": "byName",
-                  "options": "instance"
-                },
-                "properties": [
-                  {
-                    "id": "custom.width",
-                    "value": 226
-                  }
-                ]
-              },
-              {
-                "matcher": {
-                  "id": "byName",
-                  "options": "prometheus"
-                },
-                "properties": [
-                  {
-                    "id": "custom.width",
-                    "value": 296
-                  }
-                ]
-              }
-            ]
-          },
-          "gridPos": {
-            "h": 7,
-            "w": 12,
-            "x": 0,
-            "y": 6
-          },
-          "id": 16,
-          "options": {
-            "cellHeight": "sm",
-            "footer": {
-              "countRows": false,
-              "enablePagination": false,
-              "fields": "",
-              "reducer": [
-                "sum"
-              ],
-              "show": false
-            },
-            "frameIndex": 0,
-            "showHeader": true,
-            "sortBy": []
-          },
-          "pluginVersion": "11.5.2",
-          "targets": [
-            {
-              "datasource": {
-                "type": "prometheus",
-                "uid": ""
-              },
-              "editorMode": "code",
-              "exemplar": false,
-              "expr": "spegel_advertised_images{job=~\"\",instance=~\"\"}",
-              "format": "table",
-              "instant": true,
-              "legendFormat": "__auto",
-              "range": false,
-              "refId": "A"
-            },
-            {
-              "datasource": {
-                "type": "prometheus",
-                "uid": ""
-              },
-              "editorMode": "code",
-              "exemplar": false,
-              "expr": "spegel_advertised_keys{job=~\"\",instance=~\"\"} ",
-              "format": "table",
-              "hide": false,
-              "instant": true,
-              "legendFormat": "__auto",
-              "range": false,
-              "refId": "B"
-            }
-          ],
-          "transformations": [
-            {
-              "id": "filterFieldsByName",
-              "options": {
-                "include": {
-                  "names": [
-                    "pod",
-                    "Value #A",
-                    "Value #B"
-                  ]
-                }
-              }
-            },
-            {
-              "id": "merge",
-              "options": {}
-            },
-            {
-              "id": "renameByRegex",
-              "options": {
-                "regex": "Value #A",
-                "renamePattern": "Container cache"
-              }
-            },
-            {
-              "id": "renameByRegex",
-              "options": {
-                "regex": "Value #B",
-                "renamePattern": "Layers cache"
-              }
-            }
-          ],
-          "transparent": true,
-          "type": "table"
-        },
-        {
-          "datasource": {
-            "type": "prometheus",
-            "uid": ""
-          },
-          "description": "",
-          "fieldConfig": {
-            "defaults": {
-              "color": {
-                "mode": "palette-classic"
-              },
-              "custom": {
-                "axisBorderShow": false,
-                "axisCenteredZero": false,
-                "axisColorMode": "series",
-                "axisLabel": "",
-                "axisPlacement": "auto",
-                "barAlignment": 0,
-                "barWidthFactor": 0.6,
-                "drawStyle": "line",
-                "fillOpacity": 10,
-                "gradientMode": "opacity",
-                "hideFrom": {
-                  "legend": false,
-                  "tooltip": false,
-                  "viz": false
-                },
-                "insertNulls": false,
-                "lineInterpolation": "smooth",
-                "lineStyle": {
-                  "fill": "solid"
-                },
-                "lineWidth": 2,
-                "pointSize": 1,
-                "scaleDistribution": {
-                  "type": "linear"
-                },
-                "showPoints": "auto",
-                "spanNulls": false,
-                "stacking": {
-                  "group": "A",
-                  "mode": "none"
-                },
-                "thresholdsStyle": {
-                  "mode": "off"
-                }
-              },
-              "mappings": [],
-              "thresholds": {
-                "mode": "absolute",
-                "steps": [
-                  {
-                    "color": "green",
-                    "value": null
-                  },
-                  {
-                    "color": "red",
-                    "value": 80
-                  }
-                ]
-              }
-            },
-            "overrides": []
-          },
-          "gridPos": {
-            "h": 7,
-            "w": 12,
-            "x": 12,
-            "y": 6
-          },
-          "id": 6,
-          "options": {
-            "legend": {
-              "calcs": [],
-              "displayMode": "list",
-              "placement": "bottom",
-              "showLegend": true
-            },
-            "tooltip": {
-              "hideZeros": false,
-              "mode": "single",
-              "sort": "none"
-            }
-          },
-          "pluginVersion": "11.5.2",
-          "targets": [
-            {
-              "datasource": {
-                "type": "prometheus",
-                "uid": ""
-              },
-              "editorMode": "code",
-              "exemplar": false,
-              "expr": "spegel_advertised_images{job=~\"\",instance=~\"\"}",
-              "format": "time_series",
-              "instant": false,
-              "legendFormat": "{{ instance }}",
-              "range": true,
-              "refId": "A"
-            }
-          ],
-          "title": "Container Images Advertised ",
-          "transparent": true,
-          "type": "timeseries"
-        },
-        {
-          "datasource": {
-            "type": "prometheus",
-            "uid": ""
-          },
-          "fieldConfig": {
-            "defaults": {
-              "color": {
-                "mode": "palette-classic"
-              },
-              "custom": {
-                "axisBorderShow": false,
-                "axisCenteredZero": false,
-                "axisColorMode": "series",
-                "axisLabel": "",
-                "axisPlacement": "auto",
-                "barAlignment": 0,
-                "barWidthFactor": 0.6,
-                "drawStyle": "line",
-                "fillOpacity": 36,
-                "gradientMode": "opacity",
-                "hideFrom": {
-                  "legend": false,
-                  "tooltip": false,
-                  "viz": false
-                },
-                "insertNulls": false,
-                "lineInterpolation": "linear",
-                "lineWidth": 1,
-                "pointSize": 5,
-                "scaleDistribution": {
-                  "type": "linear"
-                },
-                "showPoints": "never",
-                "spanNulls": false,
-                "stacking": {
-                  "group": "A",
-                  "mode": "normal"
-                },
-                "thresholdsStyle": {
-                  "mode": "off"
-                }
-              },
-              "mappings": [],
-              "thresholds": {
-                "mode": "absolute",
-                "steps": [
-                  {
-                    "color": "green",
-                    "value": null
-                  },
-                  {
-                    "color": "red",
-                    "value": 80
-                  }
-                ]
-              }
-            },
-            "overrides": [
-              {
-                "matcher": {
-                  "id": "byName",
-                  "options": "requests"
-                },
-                "properties": [
-                  {
-                    "id": "color",
-                    "value": {
-                      "fixedColor": "#F2495C",
-                      "mode": "fixed"
-                    }
-                  },
-                  {
-                    "id": "custom.fillOpacity",
-                    "value": 0
-                  },
-                  {
-                    "id": "custom.lineWidth",
-                    "value": 2
-                  },
-                  {
-                    "id": "custom.stacking",
-                    "value": {
-                      "group": false,
-                      "mode": "normal"
-                    }
-                  }
-                ]
-              },
-              {
-                "matcher": {
-                  "id": "byName",
-                  "options": "limits"
-                },
-                "properties": [
-                  {
-                    "id": "color",
-                    "value": {
-                      "fixedColor": "#FF9830",
-                      "mode": "fixed"
-                    }
-                  },
-                  {
-                    "id": "custom.fillOpacity",
-                    "value": 0
-                  },
-                  {
-                    "id": "custom.lineWidth",
-                    "value": 2
-                  },
-                  {
-                    "id": "custom.stacking",
-                    "value": {
-                      "group": false,
-                      "mode": "normal"
-                    }
-                  }
-                ]
-              }
-            ]
-          },
-          "gridPos": {
-            "h": 7,
-            "w": 12,
-            "x": 0,
-            "y": 13
-          },
-          "id": 28,
-          "interval": "1m",
-          "options": {
-            "legend": {
-              "calcs": [],
-              "displayMode": "list",
-              "placement": "bottom",
-              "showLegend": false
-            },
-            "tooltip": {
-              "hideZeros": false,
-              "mode": "multi",
-              "sort": "none"
-            }
-          },
-          "pluginVersion": "11.5.2",
-          "targets": [
-            {
-              "datasource": {
-                "uid": ""
-              },
-              "editorMode": "code",
-              "exemplar": false,
-              "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"\"}) by (pod)",
-              "format": "time_series",
-              "instant": false,
-              "intervalFactor": 2,
-              "legendFormat": "{{ container }}",
-              "range": true,
-              "refId": "A",
-              "step": 10
-            }
-          ],
-          "title": "CPU Usage",
-          "transparent": true,
-          "type": "timeseries"
-        },
-        {
-          "datasource": {
-            "type": "prometheus",
-            "uid": ""
-          },
-          "description": "",
-          "fieldConfig": {
-            "defaults": {
-              "color": {
-                "mode": "palette-classic"
-              },
-              "custom": {
-                "axisBorderShow": false,
-                "axisCenteredZero": false,
-                "axisColorMode": "series",
-                "axisLabel": "",
-                "axisPlacement": "auto",
-                "barAlignment": 0,
-                "barWidthFactor": 0.6,
-                "drawStyle": "line",
-                "fillOpacity": 10,
-                "gradientMode": "opacity",
-                "hideFrom": {
-                  "legend": false,
-                  "tooltip": false,
-                  "viz": false
-                },
-                "insertNulls": false,
-                "lineInterpolation": "smooth",
-                "lineWidth": 2,
-                "pointSize": 1,
-                "scaleDistribution": {
-                  "type": "linear"
-                },
-                "showPoints": "auto",
-                "spanNulls": false,
-                "stacking": {
-                  "group": "A",
-                  "mode": "none"
-                },
-                "thresholdsStyle": {
-                  "mode": "off"
-                }
-              },
-              "mappings": [],
-              "thresholds": {
-                "mode": "absolute",
-                "steps": [
-                  {
-                    "color": "green",
-                    "value": null
-                  },
-                  {
-                    "color": "red",
-                    "value": 80
-                  }
-                ]
-              }
-            },
-            "overrides": []
-          },
-          "gridPos": {
-            "h": 7,
-            "w": 12,
-            "x": 12,
-            "y": 13
-          },
-          "id": 7,
-          "options": {
-            "legend": {
-              "calcs": [],
-              "displayMode": "list",
-              "placement": "bottom",
-              "showLegend": true
-            },
-            "tooltip": {
-              "hideZeros": false,
-              "mode": "single",
-              "sort": "none"
-            }
-          },
-          "pluginVersion": "11.5.2",
-          "targets": [
-            {
-              "datasource": {
-                "type": "prometheus",
-                "uid": ""
-              },
-              "editorMode": "code",
-              "exemplar": false,
-              "expr": "spegel_advertised_keys{job=~\"\",instance=~\"\"} ",
-              "format": "time_series",
-              "instant": false,
-              "legendFormat": "{{ instance }}",
-              "range": true,
-              "refId": "A"
-            }
-          ],
-          "title": "Images Layer Advertised ",
-          "transparent": true,
-          "type": "timeseries"
-        },
-        {
-          "collapsed": false,
-          "gridPos": {
-            "h": 1,
-            "w": 24,
-            "x": 0,
-            "y": 20
-          },
-          "id": 35,
-          "panels": [],
-          "title": "Kubelet",
-          "type": "row"
-        },
-        {
-          "datasource": {
-            "type": "prometheus",
-            "uid": ""
-          },
-          "fieldConfig": {
-            "defaults": {
-              "color": {
-                "mode": "palette-classic"
-              },
-              "custom": {
-                "axisBorderShow": false,
-                "axisCenteredZero": false,
-                "axisColorMode": "text",
-                "axisLabel": "",
-                "axisPlacement": "auto",
-                "barAlignment": 0,
-                "barWidthFactor": 0.6,
-                "drawStyle": "line",
-                "fillOpacity": 6,
-                "gradientMode": "none",
-                "hideFrom": {
-                  "legend": false,
-                  "tooltip": false,
-                  "viz": false
-                },
-                "insertNulls": false,
-                "lineInterpolation": "linear",
-                "lineWidth": 1,
-                "pointSize": 5,
-                "scaleDistribution": {
-                  "type": "linear"
-                },
-                "showPoints": "never",
-                "spanNulls": false,
-                "stacking": {
-                  "group": "A",
-                  "mode": "none"
-                },
-                "thresholdsStyle": {
-                  "mode": "off"
-                }
-              },
-              "mappings": [],
-              "thresholds": {
-                "mode": "absolute",
-                "steps": [
-                  {
-                    "color": "green",
-                    "value": null
-                  },
-                  {
-                    "color": "red",
-                    "value": 80
-                  }
-                ]
-              },
-              "unit": "ops"
-            },
-            "overrides": []
-          },
-          "gridPos": {
-            "h": 10,
-            "w": 12,
-            "x": 0,
-            "y": 21
-          },
-          "id": 31,
-          "options": {
-            "legend": {
-              "calcs": [],
-              "displayMode": "table",
-              "placement": "right",
-              "showLegend": true
-            },
-            "tooltip": {
-              "hideZeros": false,
-              "mode": "single",
-              "sort": "none"
-            }
-          },
-          "pluginVersion": "11.5.2",
-          "targets": [
-            {
-              "datasource": {
-                "type": "prometheus",
-                "uid": ""
-              },
-              "editorMode": "code",
-              "expr": "sum(rate(kubelet_runtime_operations_total{job=\"kubelet\", metrics_path=\"/metrics\", operation_type=~\"list_images|pull_image|start_container|list_images|list_containers|version|exec_sync|create_container\"}[])) by (operation_type)",
-              "legendFormat": "__auto",
-              "range": true,
-              "refId": "A"
-            }
-          ],
-          "title": "Kubelet Operation Rate",
-          "transparent": true,
-          "type": "timeseries"
-        },
-        {
-          "datasource": {
-            "type": "prometheus",
-            "uid": ""
-          },
-          "fieldConfig": {
-            "defaults": {
-              "color": {
-                "mode": "palette-classic"
-              },
-              "custom": {
-                "axisBorderShow": false,
-                "axisCenteredZero": false,
-                "axisColorMode": "text",
-                "axisLabel": "",
-                "axisPlacement": "auto",
-                "barAlignment": 0,
-                "barWidthFactor": 0.6,
-                "drawStyle": "line",
-                "fillOpacity": 10,
-                "gradientMode": "none",
-                "hideFrom": {
-                  "legend": false,
-                  "tooltip": false,
-                  "viz": false
-                },
-                "insertNulls": false,
-                "lineInterpolation": "linear",
-                "lineWidth": 1,
-                "pointSize": 5,
-                "scaleDistribution": {
-                  "type": "linear"
-                },
-                "showPoints": "never",
-                "spanNulls": false,
-                "stacking": {
-                  "group": "A",
-                  "mode": "none"
-                },
-                "thresholdsStyle": {
-                  "mode": "off"
-                }
-              },
-              "mappings": [],
-              "thresholds": {
-                "mode": "absolute",
-                "steps": [
-                  {
-                    "color": "green",
-                    "value": null
-                  },
-                  {
-                    "color": "red",
-                    "value": 80
-                  }
-                ]
-              },
-              "unit": "ops"
-            },
-            "overrides": []
-          },
-          "gridPos": {
-            "h": 10,
-            "w": 12,
-            "x": 12,
-            "y": 21
-          },
-          "id": 33,
-          "options": {
-            "legend": {
-              "calcs": [],
-              "displayMode": "list",
-              "placement": "bottom",
-              "showLegend": true
-            },
-            "tooltip": {
-              "hideZeros": false,
-              "mode": "multi",
-              "sort": "none"
-            }
-          },
-          "pluginVersion": "11.5.2",
-          "targets": [
-            {
-              "datasource": {
-                "uid": ""
-              },
-              "editorMode": "code",
-              "expr": "sum(rate(kubelet_runtime_operations_errors_total{job=\"kubelet\", metrics_path=\"/metrics\",operation_type=~\"list_images|pull_image|start_container|list_images|list_containers|version|exec_sync|create_container\"}[])) by (operation_type)",
-              "format": "time_series",
-              "intervalFactor": 2,
-              "legendFormat": "{{instance}} {{operation_type}}",
-              "range": true,
-              "refId": "A"
-            }
-          ],
-          "title": "Kubelet Operation Error Rate",
-          "transparent": true,
-          "type": "timeseries"
-        }
-      ],
-      "refresh": "30s",
-      "schemaVersion": 40,
-      "tags": [],
-      "templating": {
-        "list": [
-          {
-            "current": {},
-            "includeAll": false,
-            "label": "Data Source",
-            "name": "datasource",
-            "options": [],
-            "query": "prometheus",
-            "refresh": 1,
-            "regex": "",
-            "type": "datasource"
-          },
-          {
-            "current": {
-              "text": "registry",
-              "value": "registry"
-            },
-            "description": "",
-            "hide": 2,
-            "includeAll": false,
-            "label": "container",
-            "name": "container",
-            "options": [
-              {
-                "selected": true,
-                "text": "registry",
-                "value": "registry"
-              }
-            ],
-            "query": "registry",
-            "type": "custom"
-          },
-          {
-            "current": {},
-            "datasource": {
-              "type": "prometheus",
-              "uid": ""
-            },
-            "definition": "label_values(spegel_advertised_images,pod)",
-            "description": "",
-            "hide": 2,
-            "includeAll": false,
-            "label": "pod",
-            "name": "pod",
-            "options": [],
-            "query": {
-              "query": "label_values(spegel_advertised_images,pod)",
-              "refId": "StandardVariableQuery"
-            },
-            "refresh": 1,
-            "regex": "",
-            "type": "query"
-          },
-          {
-            "allowCustomValue": false,
-            "current": {},
-            "datasource": {
-              "type": "prometheus",
-              "uid": ""
-            },
-            "definition": "label_values(spegel_advertised_keys,job)",
-            "hide": 2,
-            "label": "job",
-            "name": "job",
-            "options": [],
-            "query": {
-              "qryType": 1,
-              "query": "label_values(spegel_advertised_keys,job)",
-              "refId": "PrometheusVariableQueryEditor-VariableQuery"
-            },
-            "refresh": 1,
-            "regex": "",
-            "type": "query"
-          },
-          {
-            "current": {},
-            "datasource": {
-              "type": "prometheus",
-              "uid": ""
-            },
-            "definition": "label_values(spegel_advertised_keys{job=\"\"},instance)",
-            "includeAll": true,
-            "label": "instance",
-            "multi": true,
-            "name": "instance",
-            "options": [],
-            "query": {
-              "qryType": 1,
-              "query": "label_values(spegel_advertised_keys{job=\"\"},instance)",
-              "refId": "PrometheusVariableQueryEditor-VariableQuery"
-            },
-            "refresh": 2,
-            "regex": "",
-            "type": "query"
-          }
-        ]
-      },
-      "time": {
-        "from": "now-3h",
-        "to": "now"
-      },
-      "timepicker": {},
-      "timezone": "",
-      "title": "Spegel stateless cluster local OCI registry mirror",
-      "uid": "1iY4QMJVk-psee",
-      "gnetId": 18089,
-      "version": 4,
-      "weekStart": ""
-    }
-
--- HelmRelease: kube-system/spegel Service: kube-system/spegel-registry

+++ HelmRelease: kube-system/spegel Service: kube-system/spegel-registry

@@ -5,21 +5,20 @@

   name: spegel-registry
   namespace: kube-system
   labels:
     app.kubernetes.io/name: spegel
     app.kubernetes.io/instance: spegel
     app.kubernetes.io/managed-by: Helm
-  annotations:
-    service.kubernetes.io/topology-mode: auto
 spec:
   type: NodePort
+  trafficDistribution: PreferSameNode
   selector:
     app.kubernetes.io/component: spegel
     app.kubernetes.io/name: spegel
     app.kubernetes.io/instance: spegel
   ports:
   - name: registry
     port: 5000
     targetPort: registry
-    nodePort: 30021
+    nodePort: 30020
     protocol: TCP
 
--- HelmRelease: kube-system/spegel Service: kube-system/spegel-bootstrap

+++ HelmRelease: kube-system/spegel Service: kube-system/spegel-bootstrap

@@ -12,11 +12,7 @@

   selector:
     app.kubernetes.io/component: spegel
     app.kubernetes.io/name: spegel
     app.kubernetes.io/instance: spegel
   clusterIP: None
   publishNotReadyAddresses: true
-  ports:
-  - name: router
-    port: 5001
-    protocol: TCP
 
--- HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel

+++ HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel

@@ -26,23 +26,22 @@

     spec:
       serviceAccountName: spegel
       securityContext: {}
       priorityClassName: system-node-critical
       initContainers:
       - name: configuration
-        image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+        image: ghcr.io/spegel-org/spegel@sha256:b48194957bf9b5bdcea2700536a302ade23315082b05e5a44c0822f5c301850a
         imagePullPolicy: IfNotPresent
         securityContext:
           readOnlyRootFilesystem: true
         args:
         - configuration
         - --log-level=INFO
         - --containerd-registry-config-path=/etc/cri/conf.d/hosts
         - --mirror-targets
-        - http://:29999
-        - http://:30021
+        - http://:30020
         - --resolve-tags=true
         - --prepend-existing=false
         env:
         - name: NODE_IP
           valueFrom:
             fieldRef:
@@ -54,13 +53,13 @@

             memory: 128Mi
         volumeMounts:
         - name: containerd-config
           mountPath: /etc/cri/conf.d/hosts
       containers:
       - name: registry
-        image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+        image: ghcr.io/spegel-org/spegel@sha256:b48194957bf9b5bdcea2700536a302ade23315082b05e5a44c0822f5c301850a
         imagePullPolicy: IfNotPresent
         securityContext:
           readOnlyRootFilesystem: true
         args:
         - registry
         - --log-level=INFO
@@ -73,32 +72,33 @@

         - --containerd-namespace=k8s.io
         - --containerd-registry-config-path=/etc/cri/conf.d/hosts
         - --bootstrap-kind=dns
         - --dns-bootstrap-domain=spegel-bootstrap.kube-system.svc.cluster.local.
         - --containerd-content-path=/var/lib/containerd/io.containerd.content.v1.content
         - --debug-web-enabled=true
+        - --data-dir=/var/lib/spegel
         env:
-        - name: DATA_DIR
-          value: ''
         - name: GOMEMLIMIT
           valueFrom:
             resourceFieldRef:
               resource: limits.memory
               divisor: 1
         - name: NODE_IP
           valueFrom:
             fieldRef:
               fieldPath: status.hostIP
         ports:
         - name: registry
           containerPort: 5000
-          hostPort: 29999
           protocol: TCP
-        - name: router
+        - name: router-tcp
           containerPort: 5001
           protocol: TCP
+        - name: router-quic
+          containerPort: 5001
+          protocol: UDP
         - name: metrics
           containerPort: 9090
           protocol: TCP
         startupProbe:
           periodSeconds: 3
           failureThreshold: 60
@@ -107,23 +107,29 @@

             port: registry
         readinessProbe:
           httpGet:
             path: /readyz
             port: registry
         volumeMounts:
+        - name: spegel-data
+          mountPath: /var/lib/spegel
         - name: containerd-sock
           mountPath: /run/containerd/containerd.sock
         - name: containerd-content
           mountPath: /var/lib/containerd/io.containerd.content.v1.content
           readOnly: true
         resources:
           limits:
             memory: 128Mi
           requests:
             memory: 128Mi
       volumes:
+      - name: spegel-data
+        hostPath:
+          path: /var/lib/spegel
+          type: DirectoryOrCreate
       - name: containerd-sock
         hostPath:
           path: /run/containerd/containerd.sock
           type: Socket
       - name: containerd-content
         hostPath:
--- HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel-cleanup

+++ HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel-cleanup

@@ -27,14 +27,16 @@

         app.kubernetes.io/instance: spegel
     spec:
       securityContext: {}
       priorityClassName: system-node-critical
       containers:
       - name: cleanup
-        image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+        image: ghcr.io/spegel-org/spegel@sha256:b48194957bf9b5bdcea2700536a302ade23315082b05e5a44c0822f5c301850a
         imagePullPolicy: IfNotPresent
+        securityContext:
+          readOnlyRootFilesystem: true
         args:
         - cleanup
         - --containerd-registry-config-path=/etc/cri/conf.d/hosts
         - --addr=:8080
         readinessProbe:
           httpGet:
--- HelmRelease: kube-system/spegel Pod: kube-system/spegel-cleanup-wait

+++ HelmRelease: kube-system/spegel Pod: kube-system/spegel-cleanup-wait

@@ -11,16 +11,26 @@

     app.kubernetes.io/managed-by: Helm
   annotations:
     helm.sh/hook: post-delete
     helm.sh/hook-delete-policy: before-hook-creation, hook-succeeded
     helm.sh/hook-weight: '1'
 spec:
+  securityContext: {}
+  tolerations:
+  - key: CriticalAddonsOnly
+    operator: Exists
+  - effect: NoExecute
+    operator: Exists
+  - effect: NoSchedule
+    operator: Exists
   containers:
   - name: cleanup-wait
-    image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+    image: ghcr.io/spegel-org/spegel@sha256:b48194957bf9b5bdcea2700536a302ade23315082b05e5a44c0822f5c301850a
     imagePullPolicy: IfNotPresent
+    securityContext:
+      readOnlyRootFilesystem: true
     args:
     - cleanup-wait
     - --probe-endpoint=spegel-cleanup.kube-system.svc.cluster.local.:8080
   restartPolicy: Never
   terminationGracePeriodSeconds: 0
 

@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 6a46eed to 1adc583 Compare April 27, 2026 11:44
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 1adc583 to 2a03397 Compare May 15, 2026 18:39
@tinfoild

tinfoild Bot commented May 15, 2026 •

Copy link
Copy Markdown
Contributor Author

kube/kustomization/out00

--- kube/deploy/core/spegel/app Kustomization: flux-system/spegel-app HelmRelease: kube-system/spegel

+++ kube/deploy/core/spegel/app Kustomization: flux-system/spegel-app HelmRelease: kube-system/spegel

@@ -12,13 +12,13 @@

     spec:
       chart: spegel
       sourceRef:
         kind: HelmRepository
         name: spegel
         namespace: flux-system
-      version: 0.6.0
+      version: 0.7.4
   driftDetection:
     ignore:
     - paths:
       - /spec/replicas
     mode: warn
   install:

@tinfoild tinfoild Bot changed the title feat(oci/spegel): update 0.6.0 ➼ 0.7.0 feat(oci/spegel): update 0.6.0 ➼ 0.7.1 May 21, 2026
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 2a03397 to 533565d Compare May 21, 2026 11:10
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 533565d to 2cae661 Compare June 8, 2026 20:59
@tinfoild tinfoild Bot changed the title feat(oci/spegel): update 0.6.0 ➼ 0.7.1 feat(oci/spegel): update 0.6.0 ➼ 0.7.2 Jun 18, 2026
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch 2 times, most recently from 3d75fdf to 989843c Compare June 19, 2026 12:33
@tinfoild tinfoild Bot changed the title feat(oci/spegel): update 0.6.0 ➼ 0.7.2 feat(oci/spegel): update 0.6.0 ➼ 0.7.3 Jul 1, 2026
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 989843c to 940a60c Compare July 1, 2026 15:07
@tinfoild tinfoild Bot changed the title feat(oci/spegel): update 0.6.0 ➼ 0.7.3 feat(oci/spegel): update 0.6.0 ➼ 0.7.4 Jul 15, 2026
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch 2 times, most recently from d24e170 to 488a0ec Compare July 20, 2026 10:13
@ciel-shieru

ciel-shieru commented Jul 24, 2026 •

Copy link
Copy Markdown
Contributor

SECURITY VULNERABILITIES FOUND BY CIEL

📅 Scan date: 2026-07-24 04:40 UTC
🤖 Scanner: Ciel Security Scanner
🔗 PR: #5525 — feat(oci/spegel): update 0.6.0 ➼ 0.7.4
📦 Packages checked: 1
🔍 Sources: NVD, OSV.dev, GHSA, GHSL, CISA KEV, FortiGuard, CVE.org, Changelog
⚠️ Vulnerabilities found: 0 (direct); significant transitive dep fixes via changelog


Severity Summary

Severity Count
CRITICAL 0
HIGH 0
MEDIUM / MODERATE 0
LOW 0
UNKNOWN / NEEDS VERIFICATION 0
Total 0

Results

Package: spegel

  • Ecosystem: Helm
  • Old version: 0.6.0 — CLEAN (no direct CVEs; see changelog for transitive dep fixes)
  • New version: 0.7.4 — CLEAN

Vulnerabilities in version 0.6.0

No known vulnerabilities found in the spegel package itself across all 8 sources.

Vulnerabilities in version 0.7.4

No known vulnerabilities found.

Non-applicable findings (verified and excluded)

Finding Severity Reason not applicable
CGA-4h42-h3g6-cxx5 + 31 Wolfi entries — No CVE aliases; Wolfi version-tracking placeholders, not security vulns
GO-2026-5932 (x/crypto deprecated openpgp) — Deprecation advisory only (x/crypto v0.53.0 in new version)
CVE-2026-46600 (x/net DNS message panic) LOW Affects new version (0.55.0) via minimist parsing — low severity

Changelog Security Highlights (0.6.0 → 0.7.4)

The spegel v0.7.4 changelog and dependency analysis reveals security fixes for the following transitive dependencies that ship with the spegel container images:


Recommendations

  • MERGE PRIORITY: MEDIUM — While no direct CVEs exist in the spegel package itself, the old version (0.6.0) ships with critically vulnerable transitive dependencies (containerd +6 CRITICAL/HIGH CVEs, x/crypto +13 CVEs, x/net +6 CVEs). The 0.7.4 update resolves all of these.
  • No new vulnerabilities are introduced by the upgrade.
  • Merge promptly to benefit from the transitive dependency security fixes, particularly the containerd CRI checkpoint and x/crypto SSH agent vulnerabilities.

⚠️ This comment was posted by an automated security scanner (Ciel).
To re-scan, trigger the renovate-security-scanner skill.

@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 488a0ec to 10411ea Compare July 27, 2026 02:52
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 10411ea to 882c16c Compare October 7, 2026 22:18
@tinfoild tinfoild Bot changed the title feat(oci/spegel): update 0.6.0 ➼ 0.7.4 feat(oci/spegel): update 0.6.0 ➼ 0.8.0 Oct 16, 2026
@tinfoild
tinfoild Bot force-pushed the renovate/spegel-0.x branch from 882c16c to 0f2c7bc Compare October 16, 2026 17:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant